home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / asm / AmigaGS-Dev.lha / AmigaGS / IlbmView.exe.s < prev    next >
Text File  |  2000-04-13  |  2KB  |  112 lines

  1. ; **************************
  2. ; *                        *
  3. ; * AMIGA GAME STUDIO BETA *
  4. ; *                        *
  5. ; *------------------------*
  6. ; *                        *
  7. ; * Example de viewer pour *
  8. ; * des images iff/ilbm de *
  9. ; * 2 à 256 couleurs .     *
  10. ; *                        *
  11. ; **************************
  12. ;
  13. ; Fichier startup de AGS.
  14.     Include    "AmigaGS:AmigaGS-Startup.s"
  15. ;
  16. ;
  17. ; VOTRE PROGRAMME COMMENCERA ICI !!!!!!!!
  18. ;
  19. ; Mise en place du copper AGA.
  20.     LibCall        Display,Ags_Display
  21. ;
  22. ; On prend les valeurs IFF/ILBM
  23.     Lea.l        Ilbm,a0
  24.     LibCall        FxIlbm,IlbmXSize
  25.     Lea.l        X,a0
  26.     Move.l        d0,(a0)
  27. ;
  28.     Lea.l        Ilbm,a0
  29.     LibCall        FxIlbm,IlbmYSize
  30.     Lea.l        Y,a0
  31.     Move.l        d0,(a0)
  32. ;
  33.     Lea.l        Ilbm,a0
  34.     LibCall        FxIlbm,IlbmDepth
  35.     Lea.l        Depth,a0
  36.     Move.l        d0,(a0)
  37. ;
  38. ; Ouverture de l'ecran necessaire.
  39.     Lea.l        X,a0
  40.     Moveq.l        #0,d0            ; Ecran 0
  41.     Movem.l        (a0)+,d1/d2/d3    ; X,Y,Depth.
  42. ;    Moveq.l        #8,d3
  43.     LibCall        Screens,Screen_Open
  44.  
  45. ; On place l'ecran dans le display AmigaGS.
  46.     Moveq.l        #0,d0
  47.     LibCall        Screens,Screen_Base
  48.     LibCall        Display,Ags_Screen
  49.  
  50. ; On va convertir l'image IFF/ILBM Dans l'ecran.
  51.     Moveq.l        #0,d0
  52.     LibCall        Screens,Screen_Base
  53.     Lea.l        Ilbm,a1
  54.     LibCall        FxIlbm,IlbmConvert
  55.  
  56. ; Pour finir,On va placer la bonne palette de couleur.
  57.     Lea.l        Ilbm,a0
  58.     LibCall        FxIlbm,IlbmPalette    ; ->A0=palette base
  59.     Lea.l        CMAP,a1
  60.     Move.l        a0,(a1)
  61.     Lea.l        Depth,a1
  62.     Move.l        (a1),d0    ; D0=#bpls
  63.     Lsl.w        #1,d0    
  64.     Lea.l        DepthMask,a4
  65.     Add.w        d0,a4
  66.     Lea.l        Depth,a0
  67.     clr.l        (a0)
  68. ;
  69. ; On redéfinit ??? couleurs selon le déssin.
  70.     Lea.l        CMAP,a0
  71.     Lea.l        Depth,a1
  72.     Move.l        (a0),a3        ; A3=Palette Pointer.
  73.     Add.l        #4,a3
  74.     Move.l        (a1),d0        ; D0=Couleur en cours.
  75. bcl2
  76.     Clr.l        d1
  77.     Move.b        (a3)+,d1    ; D1=ROUGE.
  78.     Clr.l        d2
  79.     Move.b        (a3)+,d2    ; D2=VERT.
  80.     Clr.l        d3
  81.     Move.b        (a3)+,d3    ; D3=BLEU.
  82.     LibCall        Display,Ags_SetColor
  83.     Lea.l        Depth,a0
  84.     Addq.l        #1,(a0)
  85.     Move.l        (a0),d0        ; D0=Prochaine couleur.
  86.     Cmp.w        (a4),d0
  87.     Blt.b        bcl2
  88. ;
  89. ; On attend l'appui sur le bouton gauche de la souris.
  90. wlc
  91.     LibCall        Joyport,Joy0Fire1State
  92.     Tst.b        d0
  93.     Beq.b        wlc
  94.  
  95. ; On revient au workbench,on remet tout à 0 et on quitte.
  96. _Fin1:
  97.     LibCall        Display,WB_Display
  98.     ScreenClose    0
  99.     Moveq.l    #0,d0
  100.     Rts
  101.  
  102. ;
  103. ; Autres librairies définissables par l'utilisateur
  104. ;
  105. X:        Dc.l    0
  106. Y:        Dc.l    0
  107. Depth:    Dc.l    0
  108. CMAP:    Dc.l    0
  109. DepthMask:
  110.         Dc.w    0,2,4,8,16,32,64,128,256
  111. Ilbm:
  112.     Incbin    "AmigaGS:Samples/Sample.lbm"